package com.wzz.common.download.activity;

import java.util.ArrayList;
import java.util.List;

import com.hymobile.common.R;
import com.wzz.download.util.DownUtils;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.LinearLayout.LayoutParams;


/**
 * 祁元美
 * 1、为下载队列demo的主界面,
 * 2、其中在內網環境下，沒有斷點續傳功能。并需要将com.hymobile.common.download.util
 * 中的类HttpUtils中connectHttphttp方法中的代码
 * httpConnection.setRequestProperty("RANGE","bytes="+bytes+"");去掉。
 * 3、其中使用到的资源为：layout中的download_main.xml；
 */
public class DownLoadMain extends Activity {

  private static final String TAG="TestDown";


  private String destUrl;//下載地址
  private TextView textView;//顯示下載進度的textview
  private List<String> listUrls;//存放下載地址的List

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.download_main);
    textView = (TextView)findViewById(R.id.downIndex);
  }


  private Handler handler = new Handler() {
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      switch (msg.what) {
        case 1://下载进度
          if(msg.obj.toString().trim().equals("100")){
            textView.setText("完成");
          }
          Log.v(TAG, msg.obj+"");
          textView.setText(msg.obj+"");
          break;
        case 2://异常提示
          textView.setText(msg.obj+"");
          break;
        case 3://每个文件下载完返回文件存放路径
          TextView textView1= new TextView(DownLoadMain.this);
          LinearLayout falter = (LinearLayout) findViewById(R.id.layoutImageView);
          ImageView imageView = new ImageView(DownLoadMain.this);
          Log.d(TAG,"message obj:"+ msg.obj+"");
          if(msg.obj.toString().equals("null")|| msg.obj == null || msg.obj.toString().equals("")){
            textView1.setText("文件下载失败");
            falter.addView(textView1);
          }else{
            imageView.setLayoutParams(new LayoutParams(45, 45));
            Bitmap bitmap = BitmapFactory.decodeFile(msg.obj.toString());  
            imageView.setImageBitmap(bitmap);
            falter.addView(imageView);
          }
          break;
      }
    }
  }; 
  /**
   * 下載按鈕
   * @param v
   */
  public void  clickDownButton(View v){
    destUrl="http://img5.poco.cn/mypoco/myphoto/20080415/11/43443910200804151130581109259709231_019_640.jpg";
    startDown () ;
  }
  /**
   * 停止線程按鈕
   * @param view
   */
  public void clickEndThread(View view){
    if(listUrls != null && listUrls.size()!=0){
      listUrls.clear();
      DownUtils.ISENDTHREAD = true;
    }
  }
  /**
   * 開始下載
   * 現在屬於隊列下載所以文件制定的文件名稱和文件存放地址用戶不能手動設置
   */
  private void startDown () {
    //是否有SDCARD和網絡連接
    if(DownUtils.avaiableMedia()==true && DownUtils.isNetworkAvailable(this)==true){
      setListDate(destUrl);  
        DownUtils down = new DownUtils(this);
        DownUtils.ISENDTHREAD = false;
        down.setReConnectionCount(3);//设置网络连接失败，重新连接次数
        down.downLoadFile(listUrls, "", "",handler);//用戶不能手動設置下載文件的名稱和存放位置


    }else{
      Toast.makeText(this, "检测sdcard 或网络链接", Toast.LENGTH_SHORT).show();
    }
  }
  /**
   * 將下載地址依次放入List中
   * @param url 下載地址
   */
  private  void setListDate(String url){
      listUrls = new ArrayList<String>();
      listUrls.add(url);
      listUrls.add(url);
      listUrls.add(url);
      listUrls.add(url);
      listUrls.add(url);
      listUrls.add(url);
   
  }


}
